package com.mobilesorcery.sdk.profiling.internal; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import com.mobilesorcery.sdk.profiling.IProfilingListener; import com.mobilesorcery.sdk.profiling.IProfilingSession; import com.mobilesorcery.sdk.profiling.ProfilingSessionEditorInput; public class ShowProfilingViewListener implements IProfilingListener { private static final ShowProfilingViewListener INSTANCE = new ShowProfilingViewListener(); private ShowProfilingViewListener() { } public void handleEvent(ProfilingEventType eventType, final IProfilingSession session) { if (eventType == ProfilingEventType.STARTED) { Display d = PlatformUI.getWorkbench().getDisplay(); d.asyncExec(new Runnable() { public void run() { IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); ProfilingSessionEditorInput editorInput = new ProfilingSessionEditorInput(session); if (activePage != null && activePage.findEditor(editorInput) == null) { try { activePage.openEditor(editorInput, "com.mobilesorcery.sdk.profiling.ui.profiling"); } catch (PartInitException e) { e.printStackTrace(); } } } }); } } public static IProfilingListener getInstance() { return INSTANCE; } }